#ifndef POCST_H
#define POCST_H

#include "includesT.h"
#include "ScanDataT.h"

float atan3(float y,float x);
float ShiftPosition(float);
float DetectorPosition(float , float, float, float );

float DFint(const ScanData& , const std::vector<std::vector<float> >&  , int , float );
float Fint(const ScanData&  , int , float );
void P1hilbert(ScanData& , int);
void P2compact(ScanData&, int );
void P3apriori(ScanData&, int );
void P4fproject(ScanData&, int );
void P5nonneg(ScanData&, int);
void backproj(ScanData&);
void prepare(ScanData&);
void HT(ScanData&, std::vector<float>&, std::vector<float>&);

float IndexPosition( const ScanData& , const int );
int PositionIndex(const ScanData&, const float, bool);
bool isMissing(const ScanData& , const float);
bool isHilbertKnown(const ScanData&, float , float );
void project(ScanData&, const std::vector<std::vector<float> >&, float&, int, int, float, float, bool);
#endif
